---
title: माइग्रेशन गाइड
---

# माइग्रेशन गाइड

## रेनबो किट माइग्रेट करना

### 2.x.x महत्वपूर्ण बदलाव

[wagmi](https://wagmi.sh) और [viem](https://viem.sh) पीयर निर्भरताएँ `2.x.x` तक पहुँच चुकी हैं और इनमें ब्रेकिंग बदलाव हैं।

नीचे दिए गए चरणों का पालन करें।

**1. रेनबो किट, `wagmi`, और `viem` को उनके नवीनतम संस्करण तक अपग्रेड करें**

```bash
npm i @rainbow-me/rainbowkit@2 wagmi@2 viem@2.x
```

**2. `@tanstack/react-query` पियर निर्भरता इंस्टॉल करें**

Wagmi v2 के साथ, [TanStack Query](https://tanstack.com/query/v5/docs/react/overview) अब एक आवश्यक पीयर निर्भरता है।

इसे निम्नलिखित आदेश के साथ स्थापित करें:

```bash
npm i @tanstack/react-query
```

**3. अपनी रेनबो किट और वेगमी कंफिगरेशन अपग्रेड करें**

```diff
  import '@rainbow-me/rainbowkit/styles.css'

+ import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
- import { createPublicClient, http } from 'viem'
- import { WagmiConfig } from 'wagmi'
+ import { WagmiProvider, http } from 'wagmi'
- import { configureChains, createConfig } from 'wagmi'
  import { mainnet } from 'wagmi/chains'
  import { RainbowKitProvider } from '@rainbow-me/rainbowkit'
- import { getDefaultWallets, connectorsForWallets } from '@rainbow-me/rainbowkit'
+ import { getDefaultConfig } from '@rainbow-me/rainbowkit'

  /* getDefaultWallets is now optional */
- const { wallets } = getDefaultWallets({
-   appName: 'RainbowKit demo',
-   projectId: 'YOUR_PROJECT_ID',
-   chains,
- })

  /* connectorsForWallets is now optional */
- const connectors = connectorsForWallets([...wallets])

- const { chains, publicClient } = configureChains( 
-   [mainnet, sepolia], 
-   [publicProvider(), publicProvider()],
- )

- const config = createConfig({
-   autoConnect: true,
-   publicClient,
- })

  /* New API that includes Wagmi's createConfig and replaces getDefaultWallets and connectorsForWallets */
+ const config = getDefaultConfig({
+   appName: 'RainbowKit demo',
+   projectId: 'YOUR_PROJECT_ID',
+   chains: [mainnet],
+   transports: {
+     [mainnet.id]: http(),
+   },
+ })

+ const queryClient = new QueryClient()

  const App = () => {
    return (
-     <WagmiConfig config={config}>
+     <WagmiProvider config={config}>
+       <QueryClientProvider client={queryClient}>
-         <RainbowKitProvider chains={chains}>
+         <RainbowKitProvider>
            {/* Your App */}
          </RainbowKitProvider>
+       </QueryClientProvider>
-     </WagmiConfig>
+     </WagmiProvider>
    )
  }
```

**4. `wagmi` और `viem` में ब्रेकिंग परिवर्तन की जांच करें**

यदि आप अपने dApp में `wagmi` होक्स और `viem` एक्शन का उपयोग करते हैं, तो आपको v2 के लिए माइग्रेशन गाइड का पालन करना पड़ेगा:

- [Wagmi v2 माइग्रेशन गाइड](https://wagmi.sh/react/guides/migrate-from-v1-to-v2)
- [Viem v2 ब्रेकिंग परिवर्तन](https://viem.sh/docs/migration-guide#2xx-breaking-changes)

#### RainbowKit बदलाव

**1. EIP-6963 वॉलेट्स के लिए व्यवहार में सुधार**

नए EIP-6963 कनेक्शन मानक का समर्थन करने वाले वॉलेट (जिसमें रेनबो, मेटामास्क और अन्य शामिल हैं) अब `Installed` सेक्शन में स्वतः दिखाई देंगे। इससे सुनिश्चित होता है कि उपयोगकर्ता हमेशा अपने पसंदीदा वॉलेट खोज सकें और dApps से बिना संघर्ष या फ़ॉलबैक बटन के जुड़ सकें।

डेवलपर्स उपयोगकर्ता-अंत वेल्ट्स के लिए कस्टम वॉलेट सूची पर पूरा नियंत्रण बनाए रखते हैं। यह प्रोत्साहित किया जाता है कि आप अपनी सूची में `injectedWallet` और `walletConnectWallet` शामिल करें ताकि सभी प्लेटफार्म समर्थित हो।

**2. getDefaultConfig के साथ Wagmi कॉन्फ़िगरेशन**

यह नया API कंफिगरेशन अनुभव को सरल करता है और Wagmi की `createConfig` का प्रत्यक्ष उपयोग करने की आवश्यकता को बदलता है। चैन कंफिगरेशन को सरल किया गया है, जिसमें `transports` के लिए स्वचालित सार्वजनिक प्रदाता शामिल हैं।

डिफ़ॉल्ट वॉलेट सूची स्वचालित रूप से शामिल की जाएंगी, जिससे `getDefaultWallets` और `connectorsForWallets` के उपयोग की आवश्यकता समाप्त हो जाएगी।

आप `wallets` में आयातित या कस्टम वॉलेट कनेक्टर्स को पास कर के एक कस्टम वॉलेट सूची बना सकते हैं। वॉलेट कनेक्टर्स की इंस्टैंसिएशन और `projectId` और `chains` पास करने की अब आवश्यकता नहीं है।

```
const config = getDefaultConfig({
  appName: 'RainbowKit demo',
  projectId: 'YOUR_PROJECT_ID',
  chains: [mainnet],
  wallets: [rainbowWallet], /* optional custom wallet list */
  /* Wagmi createConfig options including `transports` are also accepted */
})
```

**3. रेनबो किट प्रोवाइडर**

आपको अब `<RainbowKitProvider>` में `chains` पास करने की आवश्यकता नहीं है।

```diff
- <RainbowKitProvider chains={chains}>
+ <RainbowKitProvider>
```

**4. कस्टम चेन**

`चेन` प्रकार Wagmi v2 के अनुसार बदला गया है, और RainbowKit के `iconUrl` और `iconBackground` मेटाडेटा का समर्थन जारी रखता है।

```diff
+ import { Chain } from '@rainbow-me/rainbowkit'

  const avalanche = {
    id: 43_114,
    name: 'Avalanche',
    iconUrl: 'https://s2.coinmarketcap.com/static/img/coins/64x64/5805.png',
    iconBackground: '#fff',
    nativeCurrency: { name: 'Avalanche', symbol: 'AVAX', decimals: 18 },
    rpcUrls: {
      default: { http: ['https://api.avax.network/ext/bc/C/rpc'] },
    },
    blockExplorers: {
      default: { name: 'SnowTrace', url: 'https://snowtrace.io' },
    },
    contracts: {
      multicall3: {
        address: '0xca11bde05977b3631167028862be2a173976ca11',
        blockCreated: 11_907_934,
      },
    },
  } as const satisfies Chain
```

`getDefaultConfig` के साथ उदाहरण:

```diff
const config = getDefaultConfig({
+ chains: [
+   avalanche, /* custom chain */
+   {
+     ...mainnet,
+     iconBackground: '#000',
+     iconUrl: 'https://example.com/icons/ethereum.png',
+   }, /* metadata overides */
+ ],
});
```

`createConfig` के साथ उदाहरण:

```diff
+ import { Chain } from '@rainbow-me/rainbowkit'
+ const chains: readonly [Chain, ...Chain[]] = [
+   {
+     ...mainnet,
+     iconBackground: '#000',
+     iconUrl: 'https://example.com/icons/ethereum.png',
+   },
+ ];
  const config = createConfig({
    chains,
    transports: {
      [mainnet.id]: http(),
    },
  })
```

**5. कस्टम वॉलेट्स**

रेनबो किट वॉलेट कनेक्टर्स ने Wagmi v2 को समर्थन देने के लिए महत्वपूर्ण बदलाव लिए हैं। किसी भी कस्टम वॉलेट कनेक्टर्स को अपग्रेड करने के लिए [वर्तमान दस्तावेज़](https://www.rainbowkit.com/docs/custom-wallets) और [उदाहरण कनेक्टर](https://github.com/rainbow-me/rainbowkit/blob/main/packages/rainbowkit/src/wallets/walletConnectors/rainbowWallet/rainbowWallet.ts) का अनुकरण करें।

वॉलेट कनेक्टर्स अब `rdns` प्रोप के साथ EIP-6963 मानक का समर्थन करते हैं। सुनिश्चित करें कि आपकी वॉलेट सूची में EIP-6963 समर्थित वॉलेट्स की डुप्लीकेट संदर्भों को रोकने के लिए इसे भरा हुआ है।

### 1.x.x महत्वपूर्ण परिवर्तन

#### wagmi v1 के लिए अपडेट किया गया

[wagmi](https://wagmi.sh) पियर निर्भरता को `1.x.x` में अद्यतन किया गया है।

नीचे दिए गए चरणों का पालन करें।

**1. रेनबो किट और `wagmi` को उनके नवीनतम संस्करण तक अपग्रेड करें**

```bash
npm i @rainbow-me/rainbowkit@^1 wagmi@^1
```

**2. `viem` पियर निर्भरता इंस्टॉल करें**

wagmi v1 के लिए `viem` पियर निर्भरता आवश्यक है। इसे निम्नलिखित कमांड के साथ इंस्टॉल करें:

```bash
npm i viem
```

**3. बंडलर और पॉलीफिल संगतता सुनिश्चित करें**

अपने प्रोजेक्ट के लिए कॉन्फ़िगरेशन मार्गदर्शन के लिए हमारी [Next.js Webpack कंफिग](https://github.com/rainbow-me/rainbowkit/blob/main/examples/with-next/next.config.js) सैंपल का संदर्भ लें।

Vite और Remix के लिए अतिरिक्त फ्रेमवर्क गाइड्स [यहाँ](https://www.rainbowkit.com/docs/installation#additional-build-tooling-setup) उपलब्ध हैं।

**4. `wagmi` में ब्रेकिंग परिवर्तन की जांच करें**

यदि आप `wagmi` हूक्स का अपने एप्लिकेशन में उपयोग करते हैं, तो आपको `wagmi` की v1 में माइग्रेशन गाइड का पालन करना होगा।

[उनकी माइग्रेशन गाइड यहां देख सकते हैं](https://wagmi.sh/react/migration-guide)।

### 0.12.x महत्वपूर्ण परिवर्तन

wagmi पियर निर्भरता को `0.12.x` तक अपडेट किया गया है।

रेनबो किट ने WalletConnect v1 सपोर्ट के लिए `WalletConnectLegacyConnector` का समर्थन करने वाला कनेक्टर को `wagmi` में अपनाया है। WalletConnect v2 और `WalletConnectConnector` के लिए बिना किसी ब्रेकिंग परिवर्तन के एक पैच रिलीज़ जल्द ही उपलब्ध होगा।

वॉलेट्स को भविष्य के संस्करणों में स्वचालित रूप से स्थानांतरित किया जाएगा।

हर dApp को WalletConnect v2 को सक्षम करने के लिए अब [WalletConnect Cloud](https://cloud.walletconnect.com/) `projectId` प्रदान करना आवश्यक है। यह कार्य जून 28, 2023 तक पूरा किया जाना चाहिए, इससे पहले कि WalletConnect v1 ब्रिज सर्वर बंद हो जाए। रेनबो किट v1 को तब चुपके से पसंद करेगा जब `projectId` निर्दिष्ट नहीं है।

नीचे दिए गए चरणों का पालन करें।

#### 1. रेनबो किट और `wagmi` को उनके नवीनतम संस्करण तक अपग्रेड करें

```bash
npm i @rainbow-me/rainbowkit@^0.12.0 wagmi@^0.12.0
```

#### 2. WalletConnect क्लाउड प्रोजेक्टId प्रदान करें

हर dApp जो WalletConnect पर निर्भर करता है, को अब [WalletConnect Cloud](https://cloud.walletconnect.com/) से एक `projectId` प्राप्त करने की आवश्यकता है। यह पूरी तरह से मुफ्त है और केवल कुछ ही मिनटों का समय लेता है।

`getDefaultWallets` और व्यक्तिगत रेनबो किट वॉलेट कनेक्टर्स को निम्नलिखित के जैसे `projectId` प्रदान करें:

```ts
const projectId = 'YOUR_PROJECT_ID';

const { wallets } = getDefaultWallets({
  appName: 'My RainbowKit App',
  projectId,
  chains,
});

const connectors = connectorsForWallets([
  ...wallets,
  {
    groupName: 'Other',
    wallets: [
      readyWallet({ projectId, chains }),
      trustWallet({ projectId, chains }),
      ledgerWallet({ projectId, chains }),
    ],
  },
]);
```

### 0.11.x महत्वपूर्ण परिवर्तन

wagmi पियर निर्भरता को `0.11.x` तक अपडेट किया गया है।

नीचे दिए गए चरणों का पालन करें।

#### 1. रेनबो किट और `wagmi` को उनके नवीनतम संस्करण तक अपग्रेड करें

```bash
npm i @rainbow-me/rainbowkit@^0.11.0 wagmi@^0.11.0
```

#### 2. `wagmi` में ब्रेकिंग परिवर्तन की जांच करें

यदि आप अपने एप्लिकेशन में `wagmi` हुक्स का उपयोग करते हैं, तो आपको जांच करनी होगी कि क्या आपके एप्लिकेशन पर `wagmi` के बदलाओं का असर पड़ा है।

[उनकी माइग्रेशन गाइड यहां देख सकते हैं](https://wagmi.sh/react/migration-guide#011x-breaking-changes)।

### 0.10.x महत्वपूर्ण परिवर्तन

wagmi पियर निर्भरता को `0.10.x` तक अपडेट किया गया है।

नीचे दिए गए चरणों का पालन करें।

#### 1. रेनबो किट और `wagmi` को उनके नवीनतम संस्करण तक अपग्रेड करें

```bash
npm i @rainbow-me/rainbowkit@^0.10.0 wagmi@^0.10.0
```

#### 2. `wagmi` में ब्रेकिंग परिवर्तन की जांच करें

यदि आप अपने एप्लिकेशन में `wagmi` हुक्स का उपयोग करते हैं, तो आपको जांच करनी होगी कि क्या आपके एप्लिकेशन पर `wagmi` के बदलाओं का असर पड़ा है।

[उनकी माइग्रेशन गाइड यहां देख सकते हैं](https://wagmi.sh/react/migration-guide#010x-breaking-changes)।

### 0.9.x महत्वपूर्ण परिवर्तन

wagmi पियर निर्भरता को `0.9.x` तक अपडेट किया गया है।

नीचे दिए गए चरणों का पालन करें।

#### 1. रेनबो किट और `wagmi` को उनके नवीनतम संस्करण तक अपग्रेड करें

```bash
npm i @rainbow-me/rainbowkit@^0.9.0 wagmi@^0.9.0
```

#### 2. `wagmi` में ब्रेकिंग परिवर्तन की जांच करें

यदि आप अपने एप्लिकेशन में `wagmi` हुक्स का उपयोग करते हैं, तो आपको जांच करनी होगी कि क्या आपके एप्लिकेशन पर `wagmi` के बदलाओं का असर पड़ा है।

[उनकी माइग्रेशन गाइड यहां देख सकते हैं](https://wagmi.sh/react/migration-guide#09x-breaking-changes)।

### 0.8.x महत्वपूर्ण परिवर्तन

wagmi पियर निर्भरता को `0.8.x` तक अपडेट किया गया है।

नीचे दिए गए चरणों का पालन करें।

#### 1. रेनबो किट और `wagmi` को उनके नवीनतम संस्करण तक अपग्रेड करें

```bash
npm i @rainbow-me/rainbowkit@^0.8.0 wagmi@^0.8.0
```

#### 2. `wagmi` में ब्रेकिंग परिवर्तन की जांच करें

यदि आप अपने एप्लिकेशन में `wagmi` हुक्स का उपयोग करते हैं, तो आपको जांच करनी होगी कि क्या आपके एप्लिकेशन पर `wagmi` के बदलाओं का असर पड़ा है।

[उनकी माइग्रेशन गाइड यहां देख सकते हैं](https://wagmi.sh/react/migration-guide#08x-breaking-changes)।

### 0.7.x महत्वपूर्ण परिवर्तन

यदि आप एक कस्टम वॉलेट सूची बना रहे हैं, तो अब आपको प्रत्येक वॉलेट को व्यक्तिगत रूप से आयात करना होगा ताकि बंडल आकार को घटाया जा सके। ध्यान दें कि वॉलेट अब `wallet` ऑब्जेक्ट के माध्यम से नामस्थान नहीं हैं, सभी वॉलेट्स में अब `Wallet` प्रत्यय है।

```diff
-import { connectorsForWallets, wallet } from '@rainbow-me/rainbowkit';
+import { connectorsForWallets } from '@rainbow-me/rainbowkit';
+import {
+  injectedWallet,
+  rainbowWallet,
+  metaMaskWallet,
+  coinbaseWallet,
+  walletConnectWallet,
+} from '@rainbow-me/rainbowkit/wallets';

const wallets = [
-  wallet.injected({ chains }),
-  wallet.rainbow({ chains }),
-  wallet.metaMask({ chains }),
-  wallet.coinbase({ chains, appName: 'My App' }),
-  wallet.walletConnect({ chains }),
+  injectedWallet({ chains }),
+  rainbowWallet({ chains }),
+  metaMaskWallet({ chains }),
+  coinbaseWallet({ chains, appName: 'My App' }),
+  walletConnectWallet({ chains }),
];
```

साथ ही ध्यान दें कि Steakwallet पिछड़ी संगतता लेयर हटा दी गई है। इसके बजाय Omni का उपयोग किया जाना चाहिए।

```diff
-import { wallet } from '@rainbow-me/rainbowkit';
+import { omniWallet } from '@rainbow-me/rainbowkit/wallets';

const wallets = [
-  wallet.steak({ chains }),
+  omniWallet({ chains }),
];
```

### 0.4.x महत्वपूर्ण परिवर्तन

रेनबो किट ने `wagmi` पियर निर्भरता को `0.5.x` तक अद्यतन किया है।

नीचे दिए गए चरणों का पालन करें।

#### 1. निर्भरताओं को अपग्रेड करें

रेनबो किट और wagmi को उनके नवीनतम संस्करण तक अपग्रेड करें

```bash
npm i @rainbow-me/rainbowkit@^0.4.0 wagmi@^0.5.0
```

#### 2. `wagmi` में ब्रेकिंग परिवर्तन की जांच करें

यदि आप अपने एप्लिकेशन में `wagmi` हुक्स का उपयोग करते हैं, तो आपको जांच करनी होगी कि क्या आपके एप्लिकेशन पर `wagmi` के बदलाओं का असर पड़ा है।

[उनकी माइग्रेशन गाइड यहां देख सकते हैं](https://wagmi.sh/react/migration-guide#05x-breaking-changes)।

### 0.3.x महत्वपूर्ण परिवर्तन

`Wallet` प्रकार में `createConnector` से `chainId` पैरामीटर को हटा दिया गया है।

**सभी बिल्ट-इन वॉलेट्स नए API का उपयोग कर रहे हैं। अधिकांश उपभोक्ता अप्रभावित रहेंगे। यह परिवर्तन केवल उन उपभोक्ताओं को प्रभावित करता है जिन्होंने [कस्टम वॉलेट्स](/docs/custom-wallets) बनाया/उपयोग किया है।**

यदि आपने पहले `createConnector` पर `chainId` से RPC URL व्युत्पन्न किए थे, तो अब आप उस तर्क को हटा सकते हैं क्योंकि `wagmi` अब `configureChains` के साथ उपयोग किए जाने पर आंतरिक रूप से RPC URL को संभालता है।

```diff
import { connectorsForWallets, wallet, Chain, Wallet } from '@rainbow-me/rainbowkit';
import { chain, configureChains } from 'wagmi';
import { alchemyProvider } from 'wagmi/providers/alchemy';
import { publicProvider } from 'wagmi/providers/public';
import { WalletConnectConnector } from 'wagmi/connectors/walletConnect';

export interface MyWalletOptions {
  chains: Chain[];
}

-const chains = [chain.mainnet]
+const { chains } = configureChains(
+  [chain.mainnet],
+  [
+    alchemyProvider({ alchemyId: process.env.ALCHEMY_ID }),
+    publicProvider(),
+  ]
+);

export const rainbow = ({ chains }: MyWalletOptions): Wallet => ({
  ...
- createConnector: ({ chainId }) => {
+ createConnector: () => {
-   const rpc = chains.reduce(
-     (rpcUrlMap, chain) => ({
-       ...rpcUrlMap,
-       [chainId]: chain.rpcUrls.default,
-     }),
-     {}
-   );
    const connector = new WalletConnectConnector({
      chains,
      options: {
        qrcode: false,
-       rpc,
      },
    });
  }
  ...
}

const connectors = connectorsForWallets([
  {
    groupName: 'Recommended',
    wallets: [
      rainbow({ chains }),
    ],
  },
]);
```

### 0.2.x महत्वपूर्ण परिवर्तन

रेनबो किट ने `wagmi` पियर निर्भरता को `^0.4` तक अपडेट किया है।

नीचे दिए गए चरणों का पालन करें।

#### 1. निर्भरताओं को अपग्रेड करें

रेनबो किट और wagmi को उनके नवीनतम संस्करण तक अपग्रेड करें

```bash
npm i @rainbow-me/rainbowkit@^0.2.0 wagmi@^0.4.2
```

#### 2. कॉन्फ़िगरचेन्स आयात बदलें

रेनबो किट के बजाय wagmi से `configureChains` आयात करें:

```diff
- import { configureChains } from '@rainbow-me/rainbowkit';
+ import { configureChains } from 'wagmi';
```

#### 3. प्रोवाइडर्स को माइग्रेट करें

रेनबो किट अब एक `apiProvider` API निर्यात नहीं करता है। इसे wagmi से अपनी पसंद के प्रोवाइडर से बदलें।

```diff
- import { apiProvider } from '@rainbow-me/rainbowkit';
```

#### आल्केमी

`wagmi/providers/alchemy` से `alchemyProvider` आयात करें।

```diff
+ import { alchemyProvider } from 'wagmi/providers/alchemy';

const { chains, provider } = configureChains(
  [chain.mainnet, chain.polygon, chain.optimism, chain.arbitrum],
- [apiProvider.alchemy(process.env.ALCHEMY_ID)]
+ [alchemyProvider({ alchemyId: process.env.ALCHEMY_ID })]
);
```

#### इनफ्यूरा

`wagmi/providers/infura` से `infuraProvider` आयात करें।

```diff
+import { infuraProvider } from 'wagmi/providers/infura';

const { chains, provider } = configureChains(
  [chain.mainnet, chain.polygon, chain.optimism, chain.arbitrum],
- [apiProvider.infura(process.env.INFURA_ID)]
+ [infuraProvider({ infuraId: process.env.INFURA_ID })]
);
```

#### JSON RPC

`wagmi/providers/jsonRpc` से `jsonRpcProvider` आयात करें।

```diff
+ import { jsonRpcProvider } from 'wagmi/providers/jsonRpc';

const { chains, provider } = configureChains(
  [chain.mainnet, chain.polygon],
  [
-   apiProvider.jsonRpc(chain => ({
-     rpcUrl: `https://${chain.id}.example.com`,
-   })),
+   jsonRpcProvider({
+     rpc: chain => ({
+       http: `https://${chain.id}.example.com`,
+     }),
+   }),
  ]
);
```

#### सार्वजनिक प्रदाता

`wagmi/providers/public` से `publicProvider` आयात करें।

```diff
+ import { publicProvider } from 'wagmi/providers/public';

const { chains, provider } = configureChains(
  [chain.mainnet, chain.polygon],
- [apiProvider.fallback()]
+ [publicProvider()]
);
```

#### 4. wagmi के प्रोवाइडर का नाम बदलें

`WagmiProvider` का नाम बदलकर `WagmiConfig` करें।

```diff
import {
- WagmiProvider
+ WagmiConfig
} from 'wagmi'

const App = () => {
  return (
-   <WagmiProvider client={wagmiClient}>...</WagmiProvider>
+   <WagmiConfig client={wagmiClient}>...</WagmiConfig>
  );
};
```

और आप हो गए! 🌈
